计算机网络按照使用范围可以划分为个域网、局域网、城域网、广域网和互联网,其组成复杂,存在着大量诸如集线器、交换机、路由器、笔记本、手机等硬件。为了降低网络设计的复杂性,现阶段大部分网络都会形成一个层次栈结构,每一层都建立在其下一层的基础之上,向上一层提供特定服务。这种分层结构的概念其实和计算机领域的面向对象思想类似,每一层对内部状态和算法细节隐藏,对外暴露使用方式,实现层与层之间的解耦。

1. 引言

计算机网络的体系有两种常见的体系结构:OSI七层模型以及TCP/IP四层模型。OSI(开放系统互连,Open System Interconnection)模型本身没有定义每一层服务和所有的协议,它只是指明了每一层应该做一些什么事情,而ISO(国际标准化组织,International Organization for Standardization)则为所有层都制定了相应的标准,但这些标准并不是属于参考模型本身,每个协议都是作为单独的国际标准发布的。TCP/IP参考模型以其最主要的两个协议命名,其设计的主要目标是为了保证在源机器和目标机器之间的一些及其或者传输线路突然不能工作,但源和目标机器还在运作的情况下,他们之间的连接维持不变。总的来说,OSI侧重抽象,强调功能是什么,而TCP/IP侧重实现,设计协议完成功能。

2. OSI七层模型

  • 物理层。物理层关注一条通信信道上传输原始0/1比特,主要涉及机械、电子和时序接口,典型问题包括用什么电子信号来表示1和0,一个比特持续多长时间,传输是否可以在两个方向上同时进行等(全双工/半双工/单工)。
  • 数据链路层。数据链路层主要任务是将一个原始的传输设施转变成一条没有漏检传输错误的线路。数据链路层通过数据帧的方式传输数据。
  • 网络层。网络层的主要功能是控制子网的运行,关键问题是如何将数据包从源端路由到接收方。
  • 传输层。传输层是真正的端到端的层。传输层不关注链路中间的节点,而在传输层之下的隔层,每一个协议涉及一台机器和与他直接相连的邻居。
  • 会话层。允许不同机器上的用户建立会话,包括对话控制、令牌管理以及同步功能
  • 表示层。表示层关注所传递信息的语法和语义,让具有不同内部数据表示法的计算机可以相互通信,约定同一种编码方式
  • 应用层。应用层直接面向用户,提供各种常用功能。

3. TCP/IP四层模型

4. 封装与解封装

实际使用中,我们常用5层混合模型。数据在网络中的传输过程需要经过各种不同层级设备,链路中每个设备节点需要通过封装与解封装来完成数据的传输和路由。

5. 引用

  1. 一篇文章带你熟悉 TCP/IP 协议(网络协议篇二)
  2. 计算机网络. Andrew S. Tanenbaum, David J. Wetherall(严伟等译).